↳ Prolog
↳ PrologToPiTRSProof
f_in_gga(RES, [], RES) → f_out_gga(RES, [], RES)
f_in_gga([], .(Head, Tail), RES) → U1_gga(Head, Tail, RES, f_in_gga(.(Head, Tail), Tail, RES))
f_in_gga(.(Head, Tail), Y, RES) → U2_gga(Head, Tail, Y, RES, f_in_gga(Y, Tail, RES))
U2_gga(Head, Tail, Y, RES, f_out_gga(Y, Tail, RES)) → f_out_gga(.(Head, Tail), Y, RES)
U1_gga(Head, Tail, RES, f_out_gga(.(Head, Tail), Tail, RES)) → f_out_gga([], .(Head, Tail), RES)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
f_in_gga(RES, [], RES) → f_out_gga(RES, [], RES)
f_in_gga([], .(Head, Tail), RES) → U1_gga(Head, Tail, RES, f_in_gga(.(Head, Tail), Tail, RES))
f_in_gga(.(Head, Tail), Y, RES) → U2_gga(Head, Tail, Y, RES, f_in_gga(Y, Tail, RES))
U2_gga(Head, Tail, Y, RES, f_out_gga(Y, Tail, RES)) → f_out_gga(.(Head, Tail), Y, RES)
U1_gga(Head, Tail, RES, f_out_gga(.(Head, Tail), Tail, RES)) → f_out_gga([], .(Head, Tail), RES)
F_IN_GGA([], .(Head, Tail), RES) → U1_GGA(Head, Tail, RES, f_in_gga(.(Head, Tail), Tail, RES))
F_IN_GGA([], .(Head, Tail), RES) → F_IN_GGA(.(Head, Tail), Tail, RES)
F_IN_GGA(.(Head, Tail), Y, RES) → U2_GGA(Head, Tail, Y, RES, f_in_gga(Y, Tail, RES))
F_IN_GGA(.(Head, Tail), Y, RES) → F_IN_GGA(Y, Tail, RES)
f_in_gga(RES, [], RES) → f_out_gga(RES, [], RES)
f_in_gga([], .(Head, Tail), RES) → U1_gga(Head, Tail, RES, f_in_gga(.(Head, Tail), Tail, RES))
f_in_gga(.(Head, Tail), Y, RES) → U2_gga(Head, Tail, Y, RES, f_in_gga(Y, Tail, RES))
U2_gga(Head, Tail, Y, RES, f_out_gga(Y, Tail, RES)) → f_out_gga(.(Head, Tail), Y, RES)
U1_gga(Head, Tail, RES, f_out_gga(.(Head, Tail), Tail, RES)) → f_out_gga([], .(Head, Tail), RES)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
F_IN_GGA([], .(Head, Tail), RES) → U1_GGA(Head, Tail, RES, f_in_gga(.(Head, Tail), Tail, RES))
F_IN_GGA([], .(Head, Tail), RES) → F_IN_GGA(.(Head, Tail), Tail, RES)
F_IN_GGA(.(Head, Tail), Y, RES) → U2_GGA(Head, Tail, Y, RES, f_in_gga(Y, Tail, RES))
F_IN_GGA(.(Head, Tail), Y, RES) → F_IN_GGA(Y, Tail, RES)
f_in_gga(RES, [], RES) → f_out_gga(RES, [], RES)
f_in_gga([], .(Head, Tail), RES) → U1_gga(Head, Tail, RES, f_in_gga(.(Head, Tail), Tail, RES))
f_in_gga(.(Head, Tail), Y, RES) → U2_gga(Head, Tail, Y, RES, f_in_gga(Y, Tail, RES))
U2_gga(Head, Tail, Y, RES, f_out_gga(Y, Tail, RES)) → f_out_gga(.(Head, Tail), Y, RES)
U1_gga(Head, Tail, RES, f_out_gga(.(Head, Tail), Tail, RES)) → f_out_gga([], .(Head, Tail), RES)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
F_IN_GGA([], .(Head, Tail), RES) → F_IN_GGA(.(Head, Tail), Tail, RES)
F_IN_GGA(.(Head, Tail), Y, RES) → F_IN_GGA(Y, Tail, RES)
f_in_gga(RES, [], RES) → f_out_gga(RES, [], RES)
f_in_gga([], .(Head, Tail), RES) → U1_gga(Head, Tail, RES, f_in_gga(.(Head, Tail), Tail, RES))
f_in_gga(.(Head, Tail), Y, RES) → U2_gga(Head, Tail, Y, RES, f_in_gga(Y, Tail, RES))
U2_gga(Head, Tail, Y, RES, f_out_gga(Y, Tail, RES)) → f_out_gga(.(Head, Tail), Y, RES)
U1_gga(Head, Tail, RES, f_out_gga(.(Head, Tail), Tail, RES)) → f_out_gga([], .(Head, Tail), RES)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
F_IN_GGA([], .(Head, Tail), RES) → F_IN_GGA(.(Head, Tail), Tail, RES)
F_IN_GGA(.(Head, Tail), Y, RES) → F_IN_GGA(Y, Tail, RES)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
F_IN_GGA(.(Head, Tail), Y) → F_IN_GGA(Y, Tail)
F_IN_GGA([], .(Head, Tail)) → F_IN_GGA(.(Head, Tail), Tail)
From the DPs we obtained the following set of size-change graphs: